package ewu

import ewu._
import scala.collection.mutable.ArrayBuffer

/**
 * Die Operator-Klasse stellt die Oberklasse fuer
 * Operatoren dar. Hierzu werden hier bereits zwei
 * Attribute "left" sowie "right", ueber die ein
 * Operator auf jeden Fall definiert ist, vorgegeben. 
 */

trait Operator extends Expression {
  def left: Expression
  def right: Expression
  
  def getVariables(a: ArrayBuffer[Name]) {
    left.getVariables(a)
    right.getVariables(a)
  }
  
  def replaceVariable(fromVar: Name, toVar: Expression) = {
    left.replaceVariable(fromVar, toVar)
    right.replaceVariable(fromVar, toVar)
  }
}